]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Reorganize AppDisplay actor hierarchy
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Wed, 11 Dec 2019 18:07:16 +0000 (15:07 -0300)
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Thu, 9 Apr 2020 00:12:06 +0000 (21:12 -0300)
Right now, the actor hierarchy is such that the scroll view
does not contain the actual grid. It looks as follows:

              StScrollView
                    ↓
               StBoxLayout
                    ↓
                ShellStack
                ↓        ↓
   PaginatedIconGrid     StWidget

This hierarchy can be slightly reorganized by changing it to be as
follows:

            ShellStack
             ↓     ↓
   StScrollView   StWidget
        ↓
   StBoxLayout
        ↓
 PaginatedIconGrid

This will simplify future work where the PaginatedIconGrid will be
an implementation of StScrollable, in which case we'll be able to
simply remove the StBoxLayout from there.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1191

js/ui/appDisplay.js

index 7dc963439416bdd08efabe27ab4acd12ab460685..99c052b793443845292257489e20cc4af7e4afe6 100644 (file)
@@ -341,14 +341,37 @@ var AllView = GObject.registerClass({
             use_pagination: true,
         });
 
+        this._grid._delegate = this;
+
+        this._stack = new St.Widget({
+            layout_manager: new Clutter.BinLayout(),
+            x_expand: true,
+            y_expand: true,
+        });
+        this.add_actor(this._stack);
+
+        let box = new St.BoxLayout({
+            vertical: true,
+            y_align: Clutter.ActorAlign.START,
+        });
+        box.add_child(this._grid);
+
         this._scrollView = new St.ScrollView({
             style_class: 'all-apps',
             x_expand: true,
             y_expand: true,
             reactive: true,
         });
-        this.add_actor(this._scrollView);
-        this._grid._delegate = this;
+        this._scrollView.add_actor(box);
+        this._stack.add_actor(this._scrollView);
+
+        this._eventBlocker = new St.Widget({
+            x_expand: true,
+            y_expand: true,
+            reactive: true,
+            visible: false,
+        });
+        this._stack.add_actor(this._eventBlocker);
 
         this._scrollView.set_policy(St.PolicyType.NEVER,
                                     St.PolicyType.EXTERNAL);
@@ -369,24 +392,7 @@ var AllView = GObject.registerClass({
 
         this._folderIcons = [];
 
-        this._stack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
-        let box = new St.BoxLayout({
-            vertical: true,
-            y_align: Clutter.ActorAlign.START,
-        });
-
         this._grid.currentPage = 0;
-        this._stack.add_actor(this._grid);
-        this._eventBlocker = new St.Widget({
-            x_expand: true,
-            y_expand: true,
-            reactive: true,
-            visible: false,
-        });
-        this._stack.add_actor(this._eventBlocker);
-
-        box.add_actor(this._stack);
-        this._scrollView.add_actor(box);
 
         this._scrollView.connect('scroll-event', this._onScroll.bind(this));